Ext.define('CT.controller.Categorias',{
    extend: 'Ext.app.Controller',
    views: [
        'categoria.Window',
        'categoria.Grid',
        'categoria.Form'
    ],
    stores: ['Categorias'],
    models: ['Categoria'],
    win: false,
    init: function(){
        this.control({
            'formcategoria button[action=add]':{
                click: this.agregar
            },
            'gridcategoria':{
                cellclick: this.clicked,
                edit: this.editar
            }
        });
    },
    lanzarVentana:function(departamento_k, departamento){

        if(!this.win){
            this.init();
        }
        this.departamento_k=departamento_k;
        this.departamento=departamento;
        this.win=Ext.widget('wincategorias',{width:700, iconCls:'categorias',departamento_k:this.departamento_k, title:'Administrar categorias | Departamento: '+departamento,modal:true});
        this.win.show();
    },
    clicked:function(grid, cell, index, record){
        switch(index){
            case 2:this.eliminar(grid,record.data);break;
        }
    },
    agregar:function(button){
        var form = button.up('form').getForm();
        var store=this.getCategoriasStore();
        if (form.isValid()) {
            form.submit({
                url:'index.php/categorias/add',
                params: {
                    departamento_k: this.departamento_k
                },
                success: function() {
                    form.reset();
                    Notification.ok('Categoria Agregada.',' ');
                    store.load();
                }
            });
        }
    },
    editar:function(editor, e){
        var mods='{"'+e.field+'":"'+e.value+'"}';
        Ext.Ajax.request({
            url: 'index.php/categorias/edit',
            params: {
                mod: mods,
                categoria_k: e.record.data.categoria_k,
                nombre: e.record.data.nombre,
                activo: e.record.data.activo
            },
            success: function(response){
                e.record.commit();
                Notification.ok('Categoría Modificada', ' ');
            }
        });
    },
    eliminar:function(grid,record){
        Ext.Msg.confirm('Acción requerida','Está seguro que desea eliminar el Categoria: '+record.nombre+'?',function(r){
            if(r=="yes"){
                var store=this.getCategoriasStore();
                Ext.Ajax.request({
                    url: 'index.php/categorias/delete',
                    params: {
                        categoria_k: record.categoria_k
                    },
                    success: function(response){
                        var sm = grid.getSelectionModel();
                        store.remove(sm.getSelection());
                        Notification.ok('Categoria Eliminada',' ');
                    }
                });
            }
        },this);
    }
});